package com.example.crm.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 跟进记录实体类
 */
@Data
@TableName("crm_follow_up")
public class FollowUp {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 跟进类型（1-电话，2-邮件，3-拜访，4-会议，5-其他）
     */
    private Integer type;

    /**
     * 关联的客户ID
     */
    private Long customerId;

    /**
     * 关联的联系人ID
     */
    private Long contactId;

    /**
     * 关联的销售机会ID
     */
    private Long opportunityId;

    /**
     * 跟进内容
     */
    private String content;

    /**
     * 下一步计划
     */
    private String nextStep;

    /**
     * 跟进结果
     */
    private String result;

    /**
     * 负责人ID
     */
    private Long managerId;

    /**
     * 跟进时间
     */
    private LocalDateTime followUpTime;

    /**
     * 下次跟进时间
     */
    private LocalDateTime nextFollowUpTime;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 逻辑删除标记（0-未删除，1-已删除）
     */
    @TableLogic
    private Integer deleted;

    /**
     * 客户名称（非数据库字段）
     */
    @TableField(exist = false)
    private String customerName;

    /**
     * 联系人名称（非数据库字段）
     */
    @TableField(exist = false)
    private String contactName;

    /**
     * 销售机会名称（非数据库字段）
     */
    @TableField(exist = false)
    private String opportunityName;

    /**
     * 负责人姓名（非数据库字段）
     */
    @TableField(exist = false)
    private String managerName;

    /**
     * 跟进类型名称（非数据库字段）
     */
    @TableField(exist = false)
    private String typeName;
} 